<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../assert_selection.js"></script>
<script>
if (window.internals)
  internals.settings.setEditingBehavior('win');

selection_test(
  '<div contenteditable dir="ltr">|abc def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-0 right word');

selection_test(
  '<div contenteditable dir="ltr">a|bc def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-1 right word');

selection_test(
  '<div contenteditable dir="ltr">ab|c def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-2 right word');

selection_test(
  '<div contenteditable dir="ltr">abc| def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-3 right word');

selection_test(
  '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-4 right word');

selection_test(
  '<div contenteditable dir="ltr">abc d|ef this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-5 right word');

selection_test(
  '<div contenteditable dir="ltr">abc de|f this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-6 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def| this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  '19-7 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-8 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def t|his<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-9 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def th|is<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-10 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def thi|s<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-11 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this|<span>is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-12 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>|is</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-13 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>i|s</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-14 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is|</span><span>one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-15 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>|one</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-16 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>o|ne</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-17 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>on|e</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-18 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one|</span><span>word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-19 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>|word</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-20 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>w|ord</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-21 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>wo|rd</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-22 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>wor|d</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-23 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word|</span>end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-24 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>|end opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-25 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>e|nd opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-26 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>en|d opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-27 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end| opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  '19-28 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>',
  '19-29 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end o|pq rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>',
  '19-30 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end op|q rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>',
  '19-31 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq| rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>',
  '19-32 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  '19-33 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq r|st </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  '19-34 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rs|t </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  '19-35 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  '19-36 right word');

selection_test(
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst |</div>',
  selection => selection.modify('move', 'right', 'word'),
  '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>',
  '19-37 right word');
</script>
